package cn.com.aiton.common.netty.initializer;

import cn.com.aiton.common.netty.codec.NettyGbt209992007Decoder;
import cn.com.aiton.common.netty.codec.NettyGbt209992007Encoder;
import cn.com.aiton.common.netty.handler.DefaultHandler;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;


public class NettyInitializer extends ChannelInitializer<Channel> {
    @Override
    protected void initChannel(Channel channel) throws Exception {
        ChannelPipeline pipeline = channel.pipeline();
        //10 秒没发送消息 将IdleStateHandler 添加到 ChannelPipeline 中
        //这里使用自定义分隔符
        pipeline
               // .addLast(new FixedLengthFrameDecoder(23))//参数为一次接受的数据长度。
                // .addLast("DelimiterBasedFrameDecoder",new DelimiterBasedFrameDecoder(65535))
                .addLast("NettyEncoder",new NettyGbt209992007Encoder())
                //第一个表示数据贞最大量，第二个表示头部协议占用字节数，第三个表示数据包内容长度占用字节数
                .addLast("NettyDecoder",new NettyGbt209992007Decoder())
                .addLast("DefaultHandler",new DefaultHandler());
    }
}
